package com.lj.common.config;

/**
 * @author luojing
 * @since 2025/8/8 15:03
 * 数据范围上下文
 * 因为提供服务的模块是不包含web相关依赖的，无法感知当前请求来自那个api接口，使用ThreadLocal来解决这一问题
 */
public class DataScopeHolder {

    private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();

    /**
     * 获得当前请求的api
     *
     * @return api名称
     */
    public static String get() {
        return CONTEXT_HOLDER.get();
    }

    /**
     * 设置当前请求api
     *
     * @param api api名称
     */
    public static void set(String api) {
        CONTEXT_HOLDER.set(api);
    }

    /**
     * 清除
     */
    public static void clear() {
        CONTEXT_HOLDER.remove();
    }
}
